import scrapy
import datetime
from ..items.scrapy_item4dd import Item4DD  # 相对路径导入Item4DD

# 当当网案例
class DangdangSpider(scrapy.Spider):
    name = 'dangdang'
    allowed_domains = ['http://category.dangdang.com']
    start_urls = ['http://category.dangdang.com/cp01.01.02.00.00.00.html']

    # 为不同该爬虫生成独立的日志文件（如 爬虫名_时间戳.log）
    # 爬虫类中通过 custom_settings 覆盖全局配置，且该变量名不可修改是scrapy框架的固定属性名：
    custom_settings = {
        'LOG_FILE': f"logs/{name}_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.log"  
    }

    def parse(self, response):
        # piplines 保存数据
        # items 定义数据结构
        print("当当网爬取成功！")
        
        # xpath
        title = response.xpath('//a[@class="pic"]/@title')
        img = response.xpath('//img//@data-original')
        price = response.xpath('//p[@class="price"]/span[1]/text()')

        for i in range(len(title)):
            # print(title[i].extract(),img[i].extract(),price[i].extract())
            book = Item4DD(img=img[i].extract(),title=title[i].extract(),price=price[i].extract())
            # 在这里，yield可以实现获取一个book就将book交给pipelines即管道
            yield book